#pragma once
#include <glib-object.h>

// 声明Animal类型（可派生类）
#define MY_TYPE_ANIMAL (my_animal_get_type())
G_DECLARE_DERIVABLE_TYPE(MyAnimal, my_animal, MY, ANIMAL, GObject)

// 类结构定义（包含虚函数）
struct _MyAnimalClass {
    GObjectClass parent_class;
    void (*speak)(MyAnimal *self);
};

// 公开方法
void my_animal_speak(MyAnimal *self);